1
선형 검색을 넘어서: 연관 컨테이너의 힘
AI037Lesson 15
00:00

도서관에서 책이 도착일 순서로 정리되지 않고, 하나의 유니버설 키으로 정리된다고 상상해 보세요. 이것은 순차적 접근에서 연관 컨테이너로의 패러다임 전환입니다. 선형적으로 벡터 를 스캔하는 대신, 우리는 또는 을 사용하여 로그 시간 복잡도($O(\log n)$)의 조회를 달성합니다.

1. 연관의 본질

맵에서는 키-값 쌍을 저장합니다. 키는 문자열, 사용자 정의 객체 또는 키-값 쌍Strict Weak Ordering을 지원하는 어떤 타입이든 될 수 있는 인덱스 역할을 합니다. 반대로, 엄격한 약한 순서셋은 유일한 키만 저장하므로, 멤버십 확인이나 필터링에 이상적인 도구입니다. 반대로, 유일한 키만 저장하여 멤버십 테스트나 필터링에 최적의 도구가 됩니다.

벡터(순차적)셋(연관적)[0]"A"[1]"B"[2]"A"(중복)고유 필터키:"A"키:"B"

2. 정렬 여부에 따른 차이

표준 컨테이너(, )는 키를 정렬된 상태로 유지합니다. C++11 표준 은 무작위 변형(unordered_map)을 도입했는데, 이는 평균 $O(1)$ 성능을 위해 해시 함수 를 사용합니다. 이러한 고성능 버킷을 사용할 때는 C++11 로고 를 찾아보세요.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>